﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson10 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        #region 知识一 四元数 Quaternion
        //四元数Q = [cos(β/2), sin(β/2)x, sin(β/2)y, sin(β/2)z]
        //绕X轴旋转60度
        //方法一(计算原理-不常用)
        Quaternion q = new Quaternion(Mathf.Sin(30 * Mathf.Deg2Rad), 0, 0, Mathf.Cos(30 * Mathf.Deg2Rad));
        //创建一个立方体
        GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube);
        obj.transform.rotation = q;

        //方法二(常用):
        //使用封装好的方法(与q的结果一样)
        Quaternion q2 = Quaternion.AngleAxis(60, Vector3.right);
        #endregion

        #region 知识二 四元数和欧拉角转换
        //1.欧拉角转四元数
        Quaternion q3 = Quaternion.Euler(60, 0, 0);
        //2.四元数转欧拉角
        Debug.LogFormat("四元数转欧拉角:{0}", q3.eulerAngles);
        #endregion

        #region 知识三 四元数弥补的欧拉角缺点
        #endregion
    }
}
